home *** CD-ROM | disk | FTP | other *** search
/ Aminet 22 / Aminet 22 (1997)(GTI - Schatztruhe)[!][Dec 1997].iso / Aminet / dev / amos / APro_GadTools.lha / GadTools / GadTools.DOC next >
Text File  |  1997-07-22  |  19KB  |  488 lines

  1.  
  2.              AMOSPro GadTools.Inc Version 1.0 - Copyright © 1995
  3.              ---------------------------------------------------
  4.                           Written by Harald Wagner
  5.                  Ein Erweiterungs-Tool für AMOS-Professional
  6.  
  7.                                  (FreeWare)
  8.  
  9.  
  10.  
  11.  
  12. Was sind die AMOSPro GadTools?
  13. ------------------------------
  14.  
  15. Die AMOSPro GadTools sind ein Include-File für AMOS Professional.
  16. D.H. es wird mit der 'Include' anweisung von AMOSPro an das eigentliche
  17. Hauptprogramm angehangen. Danach stehen dem Anwender 32 Befehle für
  18. die verschiedensten GadGets zur verfügung. Bei der programmierung der
  19. GadTools ging es mir aber nicht nur darum irgendwelche GadGets auf
  20. dem Bildschirm zu setzen, sondern vielmehr auch darum dem Anwender ein
  21. packet anzubieten, mit dem man auf bequemer weise screens und Masken
  22. erstellen kann, die direkt im OS2.0 Look erscheinen.
  23.  
  24.  
  25. Kurz Übersicht aller GadTools Befehle.
  26. --------------------------------------
  27.  
  28. _PushButton[Id,X,Y,Color1,Color2,Color3,Color4,"Button-Name"]  
  29. _Del_PushButton[Id]
  30. _PushButton_Hit
  31. _CheckBox[Id,X,Y,Color1,Color2,Color3,Color4,On/Off]     
  32. _Set_CheckBox_State[Id,On/Off] 
  33. _Get_CheckBox_State[Id]  
  34. _Del_CheckBox[Id]
  35. _CheckBox_Hit
  36. _RadioButton[Id,X,Y,Color1,Color2,Color3,On/Off] 
  37. _Set_RadioButton_State[Id,On/Off]
  38. _Get_RadioButton_State[Id] 
  39. _Del_RadioButton[Id] 
  40. _RadioButton_Hit
  41. _CycleButton[Id,X,Y,Color1,Color2,Color3,Color4,"Text1|Text2..."]
  42. _Set_CycleButton_State[Id,TextNumber]
  43. _Get_CycleButton_State[Id] 
  44. _Del_CycleButton[Id] 
  45. _CycleButton_Hit
  46. _ToggleButton[Id,X,Y,Color1,Color2,Color3,Color4,On/Off,"Button-Name"]   
  47. _Set_ToggleButton_State[Id,On/Off] 
  48. _Get_ToggleButton_State[Id]
  49. _Del_ToggleButton[Id]
  50. _ToggleButton_Hit
  51. _StringGadget[Id,X,Y,Color1,Color2,Color3,Color4,Color5,GadLen,MaxTextLen]   
  52. _Set_StringGadget_State[Id,String$]
  53. _Get_StringGadget_State[Id]
  54. _Del_StringGadget[Id]
  55. _StringGadget_Hit
  56. _TextGadget[Id,X,Y,Color1,Color2,Color3,Color4,MaxTextLen] 
  57. _Set_TextGadget_Text[Id,String$] 
  58. _Make_Mask[X1,Y1,X2,Y2,Color1,Color2,Color3] 
  59. _Screen_Open[Screen,0-2 {Lores/Hires/Interlace} ]    
  60.  
  61.  
  62. Alle 32 GadTools Befehle im Überblick.
  63. --------------------------------------
  64.  
  65. Nachdem man mit >>>Include "Device+Pfad/GadTools.Inc"<<< die GadTools
  66. am ende des Hauptprogramms angehangen hat, stehen einem folgende befehle
  67. zur verfügung.:
  68. ----------------------------------------------------------------------------
  69.  
  70. _Screen_Open[ScreenNummer,Value]
  71.  
  72. Mit dieser anweisung wird ein Screen eröffnet das im OS2.0 Look erscheint.
  73. Der erste Parameter is eine ScreenNummer im bereich von 0-7. Der zweite
  74. Parameter (Value) bestimmt welchen Modi sie für den Screen benutzen
  75. möchten. Dabei kann ein wert von 0-2 angegen werden.
  76.  
  77. Value 0 = Lores (320 x 256 x 4)
  78. Value 1 = Hires (640 x 256 x 4)
  79. Value 2 = Laced (640 x 512 x 4)
  80.  
  81. Ein somit geöffneter Screen enthält danach automatisch die farben
  82. im OS2.0 Look.
  83.  
  84. ----------------------------------------------------------------------------
  85.  
  86. _Make_Mask[X1,Y1,X2,Y2,Color1,Color2,Color3]
  87.  
  88. Mit dieser anweisung wird eine Maske im Screen eröffnet (Panel) das im
  89. OS2.0 Look dargestellt wird. Dabei wird die Maske an den Coordinaten
  90. X1,Y1,X2,Y2 gezeichnet. Color1 bestimmt das FarbAtribut für den oberen
  91. und linken teil des Borders und Color2 für den rechten und unteren teil
  92. des Borders. Mit Color3 wird das FarbAtribut für die farbe der Maske
  93. selbst bestimmt. Man sollte den _Make_Mask befehl immer im zusammenhang
  94. mit _Screen_Open benutzen.
  95.  
  96. ----------------------------------------------------------------------------
  97.  
  98. _PushButton[Id,X,Y,Color1,Color2,Color3,Color4,"Button-Name"]
  99.  
  100. Mit dieser anweisung wird ein PushButton gezeichnet. Dabei wird das
  101. Button mit der Id-Nummer 'Id' an den Coordinaten X,Y gezeichnet. Mit
  102. Color1 wird das FarbAtribut für den oberen und linken teil des Borders
  103. gewählt und mit Color2 das FarbAtribut für den unteren und rechten teil
  104. des Borders. Mit Color3 wird das FarbAtribut für das Button selbst
  105. bestimmt und Color4 setzt das FarbAtribut für den Text im Button.
  106. Mit Button-Name wird der name des Buttons festgelegt. Insgesammt kann
  107. man 30 (1-30) PushButtons definieren. Die angabe der 'Id-Nr.' darf also
  108. nur im bereich von 1-30 liegen.
  109.  
  110. ----------------------------------------------------------------------------
  111.  
  112. _Del_PushButton[Id]
  113.  
  114. Mit dieser anweisung wird ein PushButton mit der Id-Kennung 'Id' aus
  115. dem speicher entfernt. Danach lässt sich dieses Button nicht mehr
  116. abfragen. Die grafische darstellung bleibt jedoch auf dem Screen er-
  117. halten. Diese anweisung ist sehr wichtig, wenn man z.b. einen zweiten
  118. screen öffnet in dem sich ein option-panel aufbaut. Damit die Buttons
  119. aus dem vorherigen screen nicht mit abgefragt werden. Möchte man das
  120. somit glöschte Button wieder aktivieren, so muss man dieses wieder
  121. mit der _PushButton anweisung neu definieren. (Siehe unter _PushButton)
  122.  
  123. ----------------------------------------------------------------------------
  124.  
  125. _PushButton_Hit
  126.  
  127. Mit dieser anweisung werden alle bis dato definierten PushButtons abgefragt.
  128. Wurde eines betätigt, so wird die Id-Nummer in der variable 'Param' zu-
  129. rückgegeben. (z.b. '1' wenn PushButton 1 angeklickt wurde.) Wurde kein
  130. Button angeklickt, so wird '0' in der variable 'Param' zurückgegeben.
  131. Diese anweisung sollte immer mit in der hauptschleife des hauptprogramms
  132. ausgeführt werden.
  133.  
  134. ----------------------------------------------------------------------------
  135.  
  136. _CheckBox[Id,X,Y,Color1,Color2,Color3,Color4,On/Off]
  137.  
  138. Mit dieser anweisung wird eine CheckBox mit der Id-Nummer 'Id' an den
  139. Coordinaten X,Y gezeichnet. Color1 bestimmt dabei das FarbAtribut für
  140. den oberen und linken teil des Borders und Color2 den unteren und rechten
  141. teil des Borders. Mit Color3 wird das FarbAtribut für die CheckBox selbst
  142. festgelegt und Color4 bestimmt das FarbAtribut für das häckchen das bei
  143. aktiviertem zustand angezeigt wird. Mit On/Off wird ein Value von 0-1
  144. angegeben, wobei mit '1' sofort ein häckchen in der Box gezeichnet wird.
  145. Mit '0' wird die CheckBox inaktiviert gezeichnet. Auch hier lassen sich
  146. maximal 30 CheckBoxen definieren. Die Id-Kennung darf also von 1-30
  147. gehen.
  148.  
  149. ----------------------------------------------------------------------------
  150.  
  151. _Set_CheckBox_State[Id,On/Off]
  152.  
  153. Mit dieser anweisung wird die CheckBox mit der Id-Kennung 'Id' aktiviert
  154. bzw. inaktiviert. Mit On/Off wird ein Value von 0-1 angegeben. Dabei
  155. bedutet ein wert von '0' das die CheckBox inaktiviert wird (häckchen wird
  156. aus der CheckBox entfernt.) und ein wert von '1' aktiviert die angegebene
  157. CheckBox. (häckchen wird sichtbar.)
  158.  
  159. ----------------------------------------------------------------------------
  160.  
  161. _Get_CheckBox_State[Id]
  162.  
  163. Mit dieser anweisung wird der status einer CheckBox ausgelesen. Dabei
  164. wird in der variable 'Param' ein wert von '0' zurückgegeben wenn die
  165. CheckBox inaktiviert ist und '1' wenn sie aktiviert ist. Wurde ein
  166. wert von '-1' zurückgegeben, so ist ein fehler aufgetreten. Entweder
  167. existiert die CheckBox noch nicht oder es wurde die grenze der maximalen
  168. Id-Nummern von 1-30 überschritten.
  169.  
  170. ----------------------------------------------------------------------------
  171.  
  172. _Del_CheckBox[Id]
  173.  
  174. Das selbe wie _Del_PushButton[Id] nur hier für CheckBoxen. (Siehe unter
  175. _Del_PushButton.)
  176.  
  177. ----------------------------------------------------------------------------
  178.  
  179. _CheckBox_Hit
  180.  
  181. Das selbe wie _PushButton_Hit nur hier für CheckBoxen. (Siehe unter
  182. _PushButton_Hit.)
  183.  
  184. ----------------------------------------------------------------------------
  185.  
  186. _RadioButton[Id,X,Y,Color1,Color2,Color3,On/Off]
  187.  
  188. Mit dieser anweisung wird das RadioButton mit der Id-Kennung 'Id' an den
  189. Coordinaten X,Y gezeichnet. Color1 bestimmt dabei das FarbAtribut für
  190. das Button selbst. Color2 bestimmt das FarbAtribut für die aktivierte
  191. darstellung und Color3 für die inaktivierte darstellung. Mit On/Off wird
  192. ein Value von 0-1 angegeben, wobei das Button mit '0' inaktiviert und
  193. mit '1' aktiviert gezeichnet wird. Auch hier ist eine grenze von 1-30
  194. gesetzt. (D.H. Max. 30 Button können definiert werden.)
  195.  
  196. ----------------------------------------------------------------------------
  197.  
  198. _Set_RadioButton_State[Id,On/Off]
  199.  
  200. Das selbe wie _Set_CheckBox_State nur hier für RadioButtons. (Siehe unter
  201. _Set_CheckBox_State.)
  202.  
  203. ----------------------------------------------------------------------------
  204.  
  205. _Get_RadioButton_State[Id]
  206.  
  207. Das selbe wie _Get_CheckBox_State nur hier für RadioButtons. (Siehe unter
  208. _Get_CheckBox_State.)
  209.  
  210. ----------------------------------------------------------------------------
  211.  
  212. _Del_RadioButton[Id]
  213.  
  214. Das selbe wie _Del_PushButton nur hier für RadioButtons. (Siehe unter
  215. _Del_PushButton.)
  216.  
  217. ----------------------------------------------------------------------------
  218.  
  219. _RadioButton_Hit
  220.  
  221. Das selbe wie _PushButton_Hit nur hier für RadioButtons. (Siehe unter
  222. _PushButton_Hit.)
  223.  
  224. ----------------------------------------------------------------------------
  225.  
  226. _CycleButton[Id,X,Y,Color1,Color2,Color3,Color4,"Text1|Text2|Text3..."]
  227.  
  228. Mit dieser anweisung wird das CycleButton mit der Id-Kennung 'Id' an den
  229. Coordinaten X,Y gezeichnet. Color1 bestimmt dabei das FarbAtribut für den
  230. oberen und linken teil des Borders und Color2 den unteren und rechten
  231. teil des Borders. Mit Color3 wird das FarbAtribut für das Button selbst
  232. festgelegt und Color4 bestimmt die TextFarbe. Die eingegebenen Texte
  233. werden hier durch einen senkrechten strich '|' abgetrennt. Wie immer
  234. lassen sich bis zu 30 Buttons definieren. (Id = Max. 1-30)
  235.  
  236. ----------------------------------------------------------------------------
  237.  
  238. _Set_CycleButton_State[Id,TextNumber]
  239.  
  240. Mit dieser anweisung wird dem CycleButton mit der Id-Kennung 'Id' einen
  241. neuen status zugewiesen. D.H.: Wenn man z.b. 3 Texte in dem CycleButton
  242. mit der Id-Kennung '1' definiert hat und mit _Set_CycleButton_State[1,2]
  243. den status verändert, so würde dieses CycleButton den zweiten Text dar-
  244. stellen.
  245.  
  246. ----------------------------------------------------------------------------
  247.  
  248. _Get_CycleButton_State[Id]
  249.  
  250. Mit dieser anweisung wird der status eines CycleButtons ausgelesen. Das
  251. ergebnis wird dan in der variable 'Param' zurückgegeben. Ist in dem
  252. angegebenen Button z.b. gerade der 2 text sichtbar, so wird in der
  253. variable 'Param' der wert '2' zurückgegeben. Wurde eine zu hohe (Max. 1-30)
  254. Id-Kennung angegeben oder ein Button das noch nicht existiert wird '-1'
  255. zurückgegeben, das in einem solchen fall auf einen fehler hinweist.
  256.  
  257. ----------------------------------------------------------------------------
  258.  
  259. _Del_CycleButton[Id]
  260.  
  261. Das selbe wie _Del_PushButton nur hier für CycleButtons. (Siehe unter
  262. _Del_PushButton.)
  263.  
  264. ----------------------------------------------------------------------------
  265.  
  266. _CycleButton_Hit
  267.  
  268. Das selbe wie _PushButton_Hit nur hier für CycleButtons. (Siehe unter
  269. _PushButton_Hit.)
  270.  
  271. ----------------------------------------------------------------------------
  272.  
  273. _ToggleButton[Id,X,Y,Color1,Color2,Color3,Color4,On/Off,"Button-Name"]
  274.  
  275. Mit dieser anweisung wird das ToggleButton mit der Id-Kennung 'Id' an den
  276. Coordinaten X,Y gezeichnet. Mit Color1 wird das FarbAtribut für den
  277. oberen und linken teil des Borders gesetzt und mit Color2 das für den
  278. unteren und rechten teil des Borders. Mit Color3 wird das FarbAtribut für
  279. das Button selbst festgelegt und mit Color4 das für den Buton-Name.
  280. Mit On/Off wird ein value von 0-1 angegeben, wobei das Button mit '0'
  281. inaktiviert und mit '1' aktiviert dargestellt wird. Mit Button-Name wird
  282. der name des Buttons festgelegt der im Button angezeigt wird. Auch hier
  283. sind wieder Max. 30 Buttons definierbar. (Id-Kennung Max. 1-30)
  284.  
  285. ----------------------------------------------------------------------------
  286.  
  287. Set_ToggleButton_State[Id,On/Off]
  288.  
  289. Das selbe wie _Set_CheckBox_State nur hier für ToggleButtons. (Siehe unter
  290. _Set_CheckBox_State.)
  291.  
  292. ----------------------------------------------------------------------------
  293.  
  294. Get_ToggleButton_State[Id]
  295.  
  296. Das selbe wie _Get_CheckBox_State nur hier für ToggleButtons. (Siehe unter
  297. _Get_CheckBox_State.)
  298.  
  299. ----------------------------------------------------------------------------
  300.  
  301. Del_ToggleButton[Id]
  302.  
  303. Das selbe wie _Del_PushButton nur hier für ToggleButtons. (Siehe unter
  304. _Del_PushButton.)
  305.  
  306. ----------------------------------------------------------------------------
  307.  
  308. _ToggleButton_Hit
  309.  
  310. Das selbe wie _PushButton_Hit nur hier für ToggleButtons. (Siehe unter
  311. _PushButton_Hit.)
  312.  
  313. ----------------------------------------------------------------------------
  314.  
  315. _StringGadget[Id,X,Y,Color1,Color2,Color3,Color4,Color5,GadLen,MaxTexLen]
  316.  
  317. Mit dieser anweisung wird das StringGadget mit der Id-Kennung 'Id' an den
  318. Coordinaten X,Y gezeichnet. Mit Color1 wird das FarbAtribut für den
  319. oberen un linken teil des Borders gesetzt und mit Color2 das für den
  320. unteren und rechten teil des Borders. Mit Color3 wird das FarbAtribut
  321. für das StringGadget selbst gesetzt und Color4 das für den Text der
  322. im StringGadget dargestellt wird. Mit Color5 wird das FarbAtribut für
  323. den Cursor im StringGadget gesetzt. Mit GadLen wird die länge des
  324. StringGadgets in zeichen angegeben und mit MaxTexLen die maximale
  325. länge an Text die das StringGadget aufnehmen kann. Wie immer sind
  326. auch hier maximal 30 StringGadgets definierbar. (Id = Max. 1-30)
  327.  
  328. ----------------------------------------------------------------------------
  329.  
  330. _Set_StringGadget_State[Id,String$]
  331.  
  332. Mit dieser anweisung wird das StringGadget mit der Id-Kennung 'Id' den
  333. Text 'String$' zugewiesen.
  334.  
  335. ----------------------------------------------------------------------------
  336.  
  337. _Get_StringGadget_State[Id]
  338.  
  339. Mit dieser anweisung wird der inhalt des StringGadgets mit der Id-Kennung
  340. 'Id' ausgelesen. Der inhalt wird dabei dann in der variable 'Param$'
  341. zurückgegeben.
  342.  
  343. ----------------------------------------------------------------------------
  344.  
  345. _Del_StringGadget[Id]
  346.  
  347. Das selbe wie _Del_PushButton nur hier für StringGadgets. (Siehe unter
  348. _Del_PushButton.)
  349.  
  350. ----------------------------------------------------------------------------
  351.  
  352. _StringGadget_Hit
  353.  
  354. Das selbe wie _PushButton_Hit nur hier für StringGadgets. (Siehe unter
  355. _PushButton_Hit.)
  356.  
  357. ----------------------------------------------------------------------------
  358.  
  359. _TextGadget[Id,X,Y,Color1,Color2,Color3,Color4,MaxTexLen]
  360.  
  361. Mit dieser anweisung wird das TextGadget mit der Id-Kennung 'Id' an den
  362. Coordinaten X,Y gezeichnet. Color1 bestimmt dabei das FarbAtribut für den
  363. oberen und linken teil des Borders und Color2 das für den unteren und
  364. rechten teil des Borders. Mit Color3 wird das FarbAtribut für das Gadget
  365. selbst festgelegt und mit Color4 das für den Text der im TextGadget zu
  366. stehen kommt. Mit MaxTexLen wird die grösse des TextGadgets in zeichen
  367. angegeben.
  368.  
  369. Hinweis:
  370. --------
  371. Das TextGadget ist kein Button das man anklicken kann, sondern es dient
  372. mehr dazu um Texte anzuzeigen. (z.b. für status-meldungen auszugeben.)
  373.  
  374. ----------------------------------------------------------------------------
  375.  
  376. _Set_TextGadget_Text[Id,String$]
  377.  
  378. Mit dieser anweisung wird dem TextGadget mit der Id-Kennung 'Id' dem
  379. string 'String$' zugewiesen. Ist der angegebene String länger als das
  380. TextGadget, so wird der String automatisch rechts abgeschnitten.
  381.  
  382. ----------------------------------------------------------------------------
  383.  
  384.  
  385. So benutzen sie die GadTools.
  386. -----------------------------
  387.  
  388. Um die GadTools-Befehle auch einsetzen zu können, müssen sie das Include-
  389. File erst noch an ihr Hauptprogramm anhängen. Dazu dient die 'Include'
  390. anweisung von AMOSPro V2.00. Am besten sie fahren mit dem Cursor auf
  391. die letzte zeile ihres Sources und tragen dort dann folgendes ein:
  392.  
  393. Include "Device+Pfad/GadTools.Inc"
  394.  
  395. Für Device+Pfad müssen sie noch das entsprechende verzeichnis eintragen
  396. unter dem sich das GadTools-Include befindet.
  397.  
  398.  
  399. Die Beispiel-Listings.
  400. ----------------------
  401.  
  402. In dem verzeichnis ':Beispiele/' befinden sich zu allen Buttons ein
  403. beispiel-listing. Dabei liegen diese für alle ScreenModi zur verfügung.
  404. (Lores/Hires/Interlace) Alle beispiele sind direkt als ASC-Files
  405. abgelegt und können direkt über einen TextED betrachtet werden, oder
  406. eben direkt über 'Merge ASC' in dem AMOSPro-Interpreter eingeladen werden.
  407. Evtl. muss aber noch in der letzten zeile der pfad richtig eingestellt
  408. werden, damit die listings das GadTools-Include auch finden und beiladen
  409. können. Ich habe bewusst darauf verzichtet grosse beispiel-listings zu
  410. schreiben, da das alles nur unübersichtlich machen würde. Jedes listing
  411. beinhaltet also wirklich nur das nötigste, damit es auch leicht ver-
  412. ständlich bleibt.
  413.  
  414.  
  415. Reservierte Lokale Variablen & Bänke.
  416. -------------------------------------
  417.  
  418. Da es sich bei den GadTools um ein Include-File (Proceduren) handelt und
  419. nicht um eine echte AMOS-Extension, existieren in diesem File auch
  420. variablen und Bänke die sich im eigenen Hauptprogramm nicht überschneiden
  421. sollten. Deshalb hier eine kurze auflistung aller Variablen & Bänke die
  422. das GadTools-Include benötigt.:
  423.  
  424. Variablen : A-I, X-Z, A$, B$, C$
  425. AMOS-Bänke: 501-531,601-631,701-731,801-831,901-931,1001-1031,1101-1131
  426.  
  427. Da Ich keine Globalen variablen benutzt habe, könnte man die variablen
  428. auch ohne weiteres im Hauptprogramm einsetzen, solange sie Lokal bleiben,
  429. oder man diese als die sogenannten schmiervariablen benutzt. Eigentlich
  430. sollte man die variablen A-Z immer als schmiervariablen verwenden und
  431. nicht als standfeste werte für irgendwelche routinen. Erfahrende
  432. programmierer wissen sicherlich wovon ich rede. ;-)  Was die AMOS-Bänke
  433. betrifft.: Diese enthalten alle Button-Daten wie Position, farben etc.
  434. Dabei ist z.b. Bank 501 PushButton-1, Bank 502 PushButton-2 u.s.w.
  435. Alle diese aufgeführten Bänke sollten/dürfen nicht vom Hauptprogramm
  436. verändert, gelöscht, oder neu reserviert werden. Sonst dürfte es
  437. probleme geben. ;-)
  438.  
  439.  
  440. Anregungen für weitere versionen.
  441. ---------------------------------
  442.  
  443. Wenn ihr eine idee oder eben einen verbesserungsvorschlag habt, dann
  444. lasst es mich wissen. Ich bin gerne bereit diese entgegen zu nehmen.
  445. Ihr könnt mich unter folgender adresse erreichen.:
  446.  
  447.  
  448. Harald Wagner
  449. Nordring 135
  450. 52531 Übach-Palenberg
  451.  
  452. EMail: Harald@Headless.tng.oche.de
  453.  
  454.  
  455. Allgemeine Infos zu den GadTools.
  456. ---------------------------------
  457.  
  458. Das GadTools-Include und alles dazugehöhrige ist FreeWare. Es ist ohne
  459. jede einschränkung erlaubt die GadTools in eigene programme einzubringen.
  460. D.H.: Sie können die GadTools in ihrem programm weitergeben ob als Source
  461. oder als Compilat. Es ist jedoch NICHT erlaubt veränderungen an den
  462. GadTools (Proceduren) ohne schriftliche genemigung des Autors vorzunehmen.
  463. Von den Autoren die das GadTools-Include einsetzen, erwarte ich zumindest
  464. das sie in ihren DOC-Files die herkunft der GadTools erwähnen. Dies
  465. gebietet schliesslich schon der anstand. Es ist allersings keine Pflicht
  466. dies zu tun, wer das nicht möchte. Aber Ich setze mal das vertrauen in den
  467. Autoren. ;-)
  468.  
  469.  
  470. Ein wort zu den Distributoren:
  471. ------------------------------
  472.  
  473. Wer das GadTools-Packet gerne auf seine serie nehmen möchte kann dies
  474. ohne jede einschränkung tun. Ich habe da allerdings eine Bitte an allen
  475. Distributoren.: Bitte Nehmt das ganze Packet mit auf eurer serie so wie
  476. es ist. D.H.: Nicht nur das Include-File, sondern auch die kompletten
  477. DOCS sowie die beispiel-listings. Weiterhin ist das verbreiten auf CDs
  478. sehr erwünscht.
  479.  
  480.  
  481. Bug Reports bitte an den Autor senden.
  482. --------------------------------------
  483.  
  484. Wenn ihr irgendwelche fehler gefunden habt, dann bitte ich euch mir
  485. diese mitzuteilen, damit ich diese schnell beseitigen kann. Meine
  486. adresse könnt ihr weiter oben unter 'Anregungen' finden.
  487.  
  488.